package com.doit.day04

import scala.collection.immutable
import scala.io.Source

/**
 * 1,4
*2,5
*4,6
*2,4
*3,6
*4,6
*1,5
 */
object _05_线段重叠案例 {
  def main(args: Array[String]): Unit = {
    //读文件  1,4    2,5
    val list: List[String] = Source.fromFile("data/line.txt").getLines().toList

    //从数据源开始，我现在有什么  1,4 转变 ==》1-2,2-3,3-4
    //用map看似没问题，但是map进来一个只能出去一个，而我现在要进来一个出去三个，可不可以将三个元素放在一个集合中
    //1,4 ==> Array(1-2,2-3,3-4)
    val list1: List[immutable.IndexedSeq[String]] = list.map(line => {
      val arr: Array[String] = line.split(",")
      val start: String = arr(0)
      val end: String = arr(1)
      val seq = start.toInt until end.toInt //1 2 3 4
      for (elem <- seq) yield {
        elem + "-" + (elem + 1)
      }
    })

    val flatten: List[String] = list1.flatten
//    flatten.foreach(println)
    //如何将所有的word都放在一个集合里面呢？ List(1-2,2-3,3-4,2-3,3-4,4-5。。。)
    val groupEd: Map[String, List[String]] = flatten.groupBy(word => word)
    groupEd.map(tp=>(tp._1,tp._2.size))
      .foreach(println)

    //最终的结果就是想统计word count  ==》 把所有的word放在一个集合里面



  }
}
